package com.itheima.a03.模版方法模式;

import java.util.ArrayList;
import java.util.List;

public class TestMethodTemplate01 {

    public static void main(String[] args) {
        MyBeanFactory beanFactory = new MyBeanFactory();
        beanFactory.getBean();
    }

    /*bean的生命周期*/
    /*下面的这种方式对bean的生命周期进行模拟，不方便对代码进行扩展
    * 比如：我现在有个需求，要在依赖注入的时候加上对@Autowired注解和@Resource注解的解析，
    * 那么你这样写只能在原来的基础上进行编写代码，会使得代码里面的方法变得越来越臃肿
    * 我们使用TestMethodTemplate02来进行扩展*/
    static class MyBeanFactory {
        public Object getBean() {
            Object bean = new Object();
            System.out.println("构造 " + bean);
            System.out.println("依赖注入 " + bean); // @Autowired, @Resource
            System.out.println("初始化 " + bean);
            return bean;
        }
    }

}
